#!/usr/bin/python3
# -*- coding:utf-8 -*-
#######################################################
# Author: liangliangSu
# Created Time: 2024-08-04 23:32
# Email: sll917@outlook.com
# Version: V1.0
# File Name: demo14_数组索引.py
#######################################################
print('(1)*** 访问数组元素***')
#访问数组元素
#数组索引等同于访问数组元素。
#您可以通过引用其索引号来访问数组元素。
#NumPy 数组中的索引以 0 开头，这意味着第一个元素的索引为 0，第二个元素的索引为 1，以此类推。

#从以下数组中获取第一个元素：
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[0])

#从以下数组中获取第二个元素：
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[1])

#从以下数组中获取第三和第四个元素并将其相加：
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr[2] + arr[3])

#访问 2-D 数组
print('(2)*** 访问 2-D 数组***')
"""要访问二维数组中的元素，我们可以使用逗号分隔的整数表示元素的维数和索引。"""
#访问第一维中的第二个元素：
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('维数0和索引1: ', arr[0, 1])
print('维数0和索引0: ', arr[0, 0])
print('维数1和索引1: ', arr[1, 1])
print('维数1和索引2: ', arr[1, 2])
print('维数1和索引5: ', arr[1, 4])

#访问 3-D 数组
''' 要访问 3-D 数组中的元素，我们可以使用逗号分隔的整数来表示元素的维数和索引。'''
#访问第一个数组的第二个数组的第三个元素：
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print('(3-1)***访问 3-D 数组***')
print(arr)
print('(3-2)***访问 3-D 数组***')
print(arr[0, 1, 2])
print('(3-3)***访问 3-D 数组***')
print(arr[1, 0, 2])

#例子解释
#arr[0, 1, 2] 打印值 6。
#工作原理：
#第一个数字代表第一个维度，其中包含两个数组：
#[[1, 2, 3], [4, 5, 6]]
#然后：
#[[7, 8, 9], [10, 11, 12]]
#由于我们选择了 0，所以剩下第一个数组：
#[[1, 2, 3], [4, 5, 6]]
#第二个数字代表第二维，它也包含两个数组：
#[1, 2, 3]
#然后：
#[4, 5, 6]
#因为我们选择了 1，所以剩下第二个数组：
#[4, 5, 6]
#第三个数字代表第三维，其中包含三个值：
#4
#5
#6
#由于我们选择了 2，因此最终得到第三个值：
#6

#负索引
#使用负索引从尾开始访问数组。
#实例
#打印第二个维中的的最后一个元素：
print('(5)***---------------------------***')
import numpy as np
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
print('Last element from 2nd dim: ', arr[1, -1])
